package com.huaxin.device.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.huaxin.device.dto.ResponseResult;
import com.huaxin.device.dto.request.MetricCodeDictCreateReqDTO;
import com.huaxin.device.dto.request.MetricCodeDictPageListReqDTO;
import com.huaxin.device.dto.request.MetricCodeDictUpdateReqDTO;
import com.huaxin.device.models.MetricCodeDict;

public interface MetricCodeDictService extends IService<MetricCodeDict> {

    /**
     * 创建指标编码
     */
    ResponseResult<MetricCodeDict> create(MetricCodeDictCreateReqDTO in);

    /**
     * 获取指标编码
     */
    MetricCodeDict getByDictId(Integer id);

    /**
     * 更新指标编码
     */
    ResponseResult<String> update(MetricCodeDictUpdateReqDTO in);

    /**
     * 删除指标编码（可考虑逻辑删除）
     */
    ResponseResult<String> delete(Integer id);

    /**
     * 启用指标编码
     */
    ResponseResult<String> active(Integer id);

    /**
     * 禁用指标编码
     */
    ResponseResult<String> inactive(Integer id);

    /**
     * 分页查询指标编码
     */
    ResponseResult<IPage<MetricCodeDict>> pageQuery(MetricCodeDictPageListReqDTO in);
}